/*
*编写程序从标准输入设备读入字符串，并把该字符串存放在字符数组中。描述你的程序如何处理可变长的输入。
*提供比你分配的数组长度长的字符串数据测试你的程序
*/
#include <iostream>
#include <string>
using namespace std;

int main()
{
	//描述：先接受一个string类型的字符串，然后定义一个可变长度的char类型动态数组，然后将string类型的字符串的每一个字符赋给这个动态数组，组成一个char类型的末尾为空字符的数组，
	//即C风格的字符串
	string strVal;
	cout << "请输入一个字符串：";
	cin >> strVal;
	
	int csize = strVal.size() + 1;
	char *cp = new char[csize];
	for(string::size_type st = 0;st != strVal.size();st++)
	{
		*(cp + st) = strVal[st];
	}

	//在char数组末端加上空字符，组成C风格字符串
	*(cp+csize) = *(cp+csize) + NULL;

	for(int i = 0;i != csize;i++)
	{
		cout << *(cp+i);
	}

	//释放内存空间
	delete [] cp;

	cout << endl;
	system("pause");
	return 0;
}


